<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id ="app">
        <h1>学校信息</h1>
        <h2>学校名称：{{school.name}}</h2>
        <h2>学校地址：{{school.address}}</h2>
        <h2>校长是：{{school.leader}}</h2>
        <hr>
        <h1>学生信息</h1>
        <button @click="addSex">添加一个性别属性，默认值是男</button>
        <h2>姓名：{{student.name}}</h2>
        <h2 v-if="student.sex">性别：{{student.sex}}</h2>
        <h2>年龄：真实{{student.age.rAge}}，对外{{student.age.sAge}}</h2>
        <h2>爱好</h2>
        <button @click="changeHobby">修改爱好 喝酒->学习</button></button>
        <ul>
            <li v-for="(h, index) in student.hobby" :key="index">
                {{h}}
            </li>
        </ul>
        <h2>朋友们</h2>
        <ul>
            <li v-for="(f, index) in student.friends" :key="index">
                {{f.name}}--{{f.age}}
            </li>
        </ul>
    </div>

    <script>
        //创建Vue实例,得到 ViewModel
        const vm = new Vue({
            el: '#app',
            // 自定义属性
            data: {
                school:{
                    name:'尚硅谷',
                    address:'北京'
                },
                student:{
                    name:'tom',
                    age:{
                        rAge:40,
                        sAge:20
                    },
                    hobby:['抽烟','喝酒','烫头'],
                    friends:[
                        {name:'jerry', age:35},
                        {name:'tony', age:36}
                    ]
                }
            },
            // 自定义计算属性
            computed: {
                
            },
            // 自定义方法
            methods: {
                addSex() {
                    this.$set(this.student, 'sex', '男')
                },
                changeHobby() {
                    // 无效，因为hobby是非响应式属性
                    // this.student.hobby[0] = '学习'
                    // 有效
                    this.$set(this.student.hobby, 0, '学习')
                }
            }
        });
    </script>
</body>
</html>